package com.hlkj.pay.dto.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import java.util.List;
import java.util.Set;

import com.hlkj.pay.dto.BaseQueryDto;
import com.hlkj.pay.enums.PayOrderEnums;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * @author HlpayTeam
 * @date 2024/10/12 11:11
 */
@Data
public class PayOrderQueryDto extends BaseQueryDto {
	
	/**
	 * 平台订单号
	 */
	@Schema(description = "平台订单号")
	private String payOrderNo;
	
	/**
	 * 商户订单号
	 */
	@Schema(description = "商户订单号")
	private String mchOrderNo;
	
	/**
	 * 机构订单号
	 */
	@Schema(description = "机构订单号")
	private String insOrderNo;
	/**
	 * 渠道订单号
	 */
	@Schema(description = "渠道订单号")
	private String channelOrderNo;
	
	/**
	 * 渠道附加订单号
	 */
	@Schema(description = "渠道附加订单号")
	private String channelOrderId;
	/**
	 * 通道编码
	 */
	@Schema(description = "通道编码")
	private String mchChannelCode;
	
	/**
	 * 订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败
	 * @see PayOrderEnums.PAY_ORDER_STATUS
	 */
	@Schema(description = "订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败")
	private Integer state;
	/**
	 * 订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败
	 */
	@Schema(description = "订单状态，订单状态，1=初始化，2=支付中，3=支付成功，4=已撤销，5=订单关闭 6=订单关闭中 7=支付失败")
	private Set<Integer> states;


	/**
	 * 商户商户号
	 */
	@Schema(description = "商户商户号")
	private String appId;
	
	/**
	 * 是否有退款，1 未退款 2 退款中 3 部分退款 4 退款完成
	 */
	@Schema(description = "是否有退款，1 未退款 2 退款中 3 部分退款 4 退款完成")
	private Integer refundStatus;
	
	@Schema(description = "最小支付金额")
	private String minAmount;
	
	@Schema(description = "最大支付金额")
	private String maxAmount;
	
	/**
	 * 默认服务商
	 */
	@Schema(description = "服务商编码")
	private String providerCode;
	
	/**
	 * 默认通道
	 */
	@Schema(description = "通道编码")
	private String channelCode;
	
	@Schema(description = "支付类型 WECHAT: 微信 ALIPAY: 支付宝 UNION_APY: 云闪付 DIGITAL: 数字人民币")
	private String payType;
	
	@Schema(description = "支付方式 Native- 扫码支付； JSAPI-微信JSAPI、支付宝JSAPI支付、银联JSAPI支付； SIMPLE-简易支付 MINI_APP-微信小程序支付、支付宝小程序支付 H5-h5 支付 APP-APP 支付")
	private String paySubType;
	
	@Schema(description = "场景类型 1 线下 2 线上")
	private Integer sceneType;
	
	/**
	 * 支付方式编码
	 */
	@Schema(description = "支付方式编码")
	private String payWayCode;
	/**
	 * 支付方式编码
	 */
	@Schema(description = "支付方式编码")
	private List<String> payWayCodes;
	/**
	 * 向下游回调状态, 0-未发送, 1-已发送'
	 */
	@Schema(description = "向下游回调状态, 0-未发送,  1-已发送'")
	private Integer notifyState;
	/**
	 * 是否分账，1=有，0=无
	 */
	@Schema(description = "分账类型 ，0或空=无分账，1=实时分账，2=延时分账，3=商户 预设默认分账")
	private Integer fundProcessType;

	@Schema(description = "关联单号")
	private String relationOrderNo;

	@Schema(description = "订单类型")
	private Integer orderType;

	/**
	 * 订单失效时间
	 */
	@Schema(description = "订单失效时间")
	private Long maxExpiredTime;
	@Schema(description = "子商户id")
	private String subMchId;
	@Schema(description = "aut通道编码")
	private String autCode;

	@Schema(description = "AUT真实商户号")
	private String atuSubMerId;
}
